Apps API Calls
All api operations in this chapter apply to the default space only.
Search for Google Play Apps
This call searches for Google Play apps as part of the add app process.
Authentication
This call requires Tenant admin credentials.
HTTP Method
GET
Request URI
api/v1/app/googleplay
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
cmPartitionId |
Path |
The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call. |
23000 |
q |
Path |
What to find. |
outlook |
rows |
Path |
How many rows to return Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results. |
100 |
Example Request
https://[Ivanti Neurons for MDM]/api/v1/app/googleplay?cmPartitionId=20003&q=outlook&rows=100
Response Fields
Field |
Description |
---|---|
name |
Name of retrieved app. |
platformAppId |
ID of app on target platform. |
iconUrl |
URL to the icon. |
imported |
|
currency |
|
cost |
Cost of the app. |
shortDescription |
Short description of the app. |
category |
Category of the app. |
categoryDisplay |
|
Example Response
{
"errors":null,
"result":[
{
"name":"Outlook.com",
"platformAppId":"com.outlook.Z7",
"iconUrl":"https://lh6.ggpht.com/qb3BZINk7-uaYQ3RsdMk3sVDfWVCSRDIiIGnJRq-UTuyZlyv5k_9-imprqUPBBZ6xkEg=w170",
"imported":false,
"currency":null,
"cost":0.0,
"shortDescription":"The Official Microsoft Outlook.com app gives you the best mobile experience for your Outlook.com account.Sign in using your existing Microsoft account, which is usually your Outlook.com email address and password. With the Outlook.com app, you can:- Get emails right away with push notifications - Sync Outlook.com Calendar and Contacts with your device- View and sync folders and sub-folders- Choose from 8 different color themes to personalize your experience.- Group your email conversations with Conversation Threading- Utilize server-side search for easy finding through all your history of emails. - Sync multiple Outlook.com accounts and send email from aliases \tTips and tricks- Change the color theme on the app settings menu by selecting General, and then Theme color.- Filter your emails (all, unread or flagged) by selecting Inbox in the top menu.- Switch accounts or access your folders and sub-folders by selecting the top left menu. - Choose which folders automatically sync from the app settings menu by selecting Sync, Folders, and then the folders you want to sync.",
"category":null,
"categoryDisplay":null
},
…
]
}
Get Google Play App Info by Bundle ID
This call gets Google Play app info by Bundle ID.
Authentication
This call requires Tenant admin credentials.
HTTP Method
GET
Request URI
api/v1/app/googleplay/appBundleID
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
cmPartitionId |
Path |
The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call. |
23000 |
appBundleID |
Path |
The app bundle ID |
outlook |
Example Request
https://[Ivanti Neurons for MDM]/api/v1/app/googleplay/com.outlook.Z7?cmPartitionId=20003
Response Fields
Field |
Description |
---|---|
errors |
|
result |
|
id |
|
createdAt |
|
createdBy |
|
modifiedAt |
|
modifiedBy |
|
platformAppId |
|
platformType |
|
appType |
|
appStoreId |
|
cmPartitionId |
|
itComments |
|
developerName |
|
enableRatings |
|
enableReviews |
|
categories |
|
id |
|
name |
|
defaultManagementFlag |
|
vppLicenseStatus |
|
statusType |
|
available |
|
associated |
|
totalLicenseCount |
|
name |
|
iconUrl |
|
versions |
|
name |
|
featuredStatus |
|
primaryVersion |
|
secondaryVersion |
|
displayVersion |
|
minOsVersion |
|
applicationVersionId |
|
size |
|
distributionCount |
|
iconUrl |
|
description |
|
whatsNew |
|
currency |
|
cost |
|
deviceFamily |
|
phoneScreenshotUrls |
|
key |
|
url |
|
orientation |
|
height |
|
width |
|
key |
|
url |
|
orientation |
|
height |
|
width |
|
key |
|
url |
|
orientation |
|
height |
|
width |
|
key |
|
url |
|
orientation |
|
height |
|
width |
|
key |
|
url |
|
orientation |
|
height |
|
width |
|
padScreenshotUrls |
|
iosSupportedDevices |
|
iosUniversal |
|
avgRating |
|
bannerSettings |
|
Example Response
{
"errors": null,
"result": {
"id": null,
"createdAt": null,
"createdBy": null,
"modifiedAt": null,
"modifiedBy": null,
"platformAppId": "com.outlook.Z7",
"platformType": "ANDROID",
"appType": "PUBLIC",
"appStoreId": null,
"cmPartitionId": 0,
"itComments": null,
"developerName": null,
"enableRatings": true,
"enableReviews": true,
"categories": [
{
"id": null,
"name": "Communication"
}
],
"defaultManagementFlag": "REMOVE_APP_WITH_MDM_REMOVAL",
"vppLicenseStatus": {
"statusType": "NONE",
"available": 0,
"associated": 0,
"totalLicenseCount": 0
},
"name": "Outlook.com",
"iconUrl": "https://lh6.ggpht.com/qb3BZINk7-uaYQ3RsdMk3sVDfWVCSRDIiIGnJRq-UTuyZlyv5k_9-imprqUPBBZ6xkEg=w300",
"versions": [
{
"name": "Outlook.com",
"featuredStatus": "NONE",
"primaryVersion": null,
"secondaryVersion": null,
"displayVersion": "7.8.2.12.49.2176",
"minOsVersion": "7.7.2.11.49.2176",
"applicationVersionId": 0,
"size": 7235174,
"distributionCount": null,
"iconUrl": "https://lh6.ggpht.com/qb3BZINk7-uaYQ3RsdMk3sVDfWVCSRDIiIGnJRq-UTuyZlyv5k_9-imprqUPBBZ6xkEg=w300",
"description": "The Official Microsoft Outlook.com app gives you the best mobile experience for your Outlook.com account.<br>Sign in using your existing Microsoft account, which is usually your Outlook.com email address and password. <p>With the Outlook.com app, you can:</p>
<p>- Get emails right away with push notifications <br>- Sync Outlook.com Calendar and Contacts with your device<br>- View and sync folders and sub-folders<br>- Choose from 8 different color themes to personalize your experience.<br>- Group your email conversations with Conversation Threading<br>- Utilize server-side search for easy finding through all your history of emails. <br>- Sync multiple Outlook.com accounts and send email from aliases </p>
<p>Tips and tricks</p>
<p>- Change the color theme on the app settings menu by selecting General, and then Theme color.<br>- Filter your emails (all, unread or flagged) by selecting Inbox in the top menu.<br>- Switch accounts or access your folders and sub-folders by selecting the top left menu. <br>- Choose which folders automatically sync from the app settings menu by selecting Sync, Folders, and then the folders you want to sync.</p>",
"whatsNew": "New in this version:- Server-side search for easy access to all email, not just the ones synced to your phone- Unlimited sync of all email history for full off-line access- Capability to send emails from Outlook.com aliases- Eight new colors to customize the app interface- Ability to set and manage vacation replies- Traditional Chinese language support",
"currency": null,
"cost": 0,
"deviceFamily": null,
"phoneScreenshotUrls": [
{
"key": null,
"url": "https://lh6.ggpht.com/63hoSU27LSmMmTCjU0sYpljb3wm0ShWMEfL1iumDwuGBwHR-axYkJ3RxHqZ8Xl9D0FE=h900",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "https://lh5.ggpht.com/EkXogB3c5m1fBkosb9Ti_Ko5W0wn5J-9T_t5kTOgN5Dc6lYSITLDzRnriWri3CuCeg=h900",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "https://lh4.ggpht.com/w96J8ej5Y6sfm0ZM3YjvUFSA2WuyAOFLlXaoqnRgT5_rPEdHP0UAt-jI_ZTT0iEPS6c=h900",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "https://lh3.ggpht.com/TEQFw0NslkgKytfUt_xpPDRsvMi32O6lzr_3SzLpK7ZCB8wEhGG-yz5-SmQX7aD3yZU=h900",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "https://lh4.ggpht.com/Ny3_B-UKmS_-wpAvzC7vQP0e4DN8Rj5zDQbEKvhFTfOdr1jaV2CJo3NbbtYY4s_ZDLE=h900",
"orientation": null,
"height": 0,
"width": 0
}
],
"padScreenshotUrls": null,
"iosSupportedDevices": null,
"iosUniversal": false,
"avgRating": null,
"bannerSettings": null
}
]
}
}
Search for iTunes Apps
This call searches for iTunes apps as part of the add app process.
Authentication
This call requires Tenant admin credentials.
HTTP Method
GET
Request URI
api/v2/app/itunes
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
cmPartitionId |
Path |
The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call. |
20000 |
countryCode |
Path |
The country code of the target iTunes app store. |
US |
q |
Path |
What to find. |
outlook |
rows |
Path |
How many rows to return. Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results. |
100 |
Example Request
https://[Ivanti Neurons for MDM]/api/v2/app/itunes?q=outlook&cmPartitionId=20000&countryCode=US
Response Fields
Field |
Description |
errors |
|
result |
|
name |
|
developerName |
|
version |
|
size |
|
appStoreId |
|
iconUrl |
|
universal |
|
imported |
|
bundleId |
|
deviceFamily |
|
Example Response
{
"errors": null,
"result": [
{
"name": "Outlook",
"developerName": "Magzter Inc.",
"version": "6.10",
"size": 20834304,
"appStoreId": 486362804,
"iconUrl": "http://is5.mzstatic.com/image/thumb/Purple111/v4/61/42/26/614226e3-aa0b-105d-6e0c-ea1fd8e99b3f/mzl.tlzgvxkf.png/0x0ss-85.jpg",
"universal": true,
"imported": false,
"bundleId": "com.dci.outlook",
"deviceFamily": "ALL"
},
…
]
}
Get iTunes App Info by appStoreId
This call gets iTunes app info by appStoreId.
Authentication
This call requires Tenant admin credentials.
HTTP Method
GET
Request URI
api/v1/app/itunes/appStoreId
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
cmPartitionId |
Path |
The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call. |
23000 |
appStoreId |
|
The app bundle ID |
outlook |
Example Request
https://[Ivanti Neurons for MDM]/api/v1/app/itunes/428974099?cmPartitionId=20003
Response Fields
Field |
Description |
---|---|
errors |
|
result |
|
id |
|
createdAt |
|
createdBy |
|
modifiedAt |
|
modifiedBy |
|
platformAppId |
|
platformType |
|
appType |
|
appStoreId |
|
cmPartitionId |
|
itComments |
|
developerName |
|
enableRatings |
|
enableReviews |
|
categories |
|
id |
|
name |
|
id |
|
name |
|
defaultManagementFlag |
|
vppLicenseStatus |
|
statusType |
|
available |
|
associated |
|
totalLicenseCount |
|
name |
|
iconUrl |
|
versions |
|
name |
|
featuredStatus |
|
primaryVersion |
|
secondaryVersion |
|
displayVersion |
Note: As of Ivanti Neurons for MDM 70, the displayVersion value matches the secondaryVersion value for iOS apps.
|
minOsVersion |
|
applicationVersionId |
|
size |
|
distributionCount |
|
iconUrl |
|
description |
|
whatsNew |
|
currency |
|
cost |
|
deviceFamily |
|
phoneScreenshotUrls |
|
key |
|
url |
|
orientation |
|
height |
|
width |
|
padScreenshotUrls |
|
key |
|
url |
|
orientation |
|
height |
|
width |
|
iosSupportedDevices |
|
iPadThirdGen |
|
iPadFourthGen |
|
iPadMini |
|
iPadFourthGen4G |
|
iPhone4S |
|
iPodTouchFifthGen |
|
iPadMini4G |
|
iPhone5 |
|
iPad23G |
|
iPhone5c |
|
iPadThirdGen4G |
|
iPad2Wifi |
|
iPodTouchourthGen |
|
iPhone-3GS |
|
iPhone4 |
|
iPhone5s |
|
iosUniversal |
|
avgRating |
|
bannerSettings |
|
Example Response
{
"errors": null,
"result": {
"id": null,
"createdAt": null,
"createdBy": null,
"modifiedAt": null,
"modifiedBy": null,
"platformAppId": "com.mspecht.OWA",
"platformType": "IOS",
"appType": "PUBLIC",
"appStoreId": 428974099,
"cmPartitionId": 0,
"itComments": null,
"developerName": "iKonic Apps LLC",
"enableRatings": true,
"enableReviews": true,
"categories": [
{
"id": 15649,
"name": "Utilities"
},
{
"id": 15049,
"name": "Business"
}
],
"defaultManagementFlag": "REMOVE_APP_WITH_MDM_REMOVAL",
"vppLicenseStatus": {
"statusType": "NONE",
"available": 0,
"associated": 0,
"totalLicenseCount": 0
},
"name": "Mail+ for Outlook",
"iconUrl": "http://a1573.phobos.apple.com/us/r30/Purple6/v4/17/05/54/1705547c-2fda-705b-ead9-c94c8e0af0b6/Icon.png",
"versions": [
{
"name": "Mail+ for Outlook",
"featuredStatus": "NONE",
"primaryVersion": null,
"secondaryVersion": null,
"displayVersion": "3.4.5",
"minOsVersion": "2.3.5",
"applicationVersionId": 0,
"size": 26500184,
"distributionCount": null,
"iconUrl": "http://a1573.phobos.apple.com/us/r30/Purple6/v4/17/05/54/1705547c-2fda-705b-ead9-c94c8e0af0b6/Icon.png",
"description": "########################################
- Securely access Outlook Email and Calendar
- TOP 5 business apps for last 12 months
- #1 Outlook/Exchange Email App
########################################
Read and compose Outlook emails and manage your calendar directly from any iOS device. No more using the web browser to access your Outlook account!
MULTIPLE ACCOUNTS now included. Access multiple mailboxes and calendars. Great for quickly combining all of your email addresses.
(Exchange 2013, 2010, 2007, 2003
Office 365 business, Gmail, Outlook.com, Yahoo, AOL, and more)
-Read and reply to all Outlook email (includes subfolders)
-Open and forward attachments
-Compatible with PDF, XLS, DOC, JPG files
- Rich HTML Text Editing
- Out of Office
- Scheduling Assistant
-View, create calendar events (and reminders)
-Search Exchange Global Address Book
-Access contact details (name, tile, phone)
-Landscape mode (great for iPad)
-User-friendly design with easy navigation
-Excellent customer support
-Signature feature available
-Passcode protection for extra security
-Secure login
-Works on iPhone, iPad over 3G or WiFi
-Connect to Microsoft Exchange 2003, 2007, 2010
-Compatible with Microsoft Office 365, Gmail, Outlook.com, Yahoo, AOL
Connect with us!
http://www.mailplusapp.com
http://www.twitter.com/mailplusapp
http://www.mailplusapp.com/news
http://www.facebook.com/mailplusapp
Outlook is a registered trademark of Microsoft Corporation. This application has been developed by a third party developer and is not endorsed, tested, or associated with Microsoft Corporation.",
"whatsNew": null,
"currency": "USD",
"cost": 5.99,
"deviceFamily": "ALL",
"phoneScreenshotUrls": [
{
"key": null,
"url": "http://a3.mzstatic.com/us/r30/Purple/v4/3c/2c/0c/3c2c0c56-8d74-18af-2069-a94dfdd6c4ab/screen1136x1136.jpeg",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "http://a1.mzstatic.com/us/r30/Purple4/v4/0c/73/50/0c735004-78ac-2beb-8f3e-c4aa6afc22df/screen1136x1136.jpeg",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "http://a5.mzstatic.com/us/r30/Purple/v4/e6/a5/a0/e6a5a041-a3f7-9b0f-8df4-1d61c1040782/screen1136x1136.jpeg",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "http://a3.mzstatic.com/us/r30/Purple6/v4/3c/1c/ea/3c1ceae0-9f0f-1a63-4bdc-e9bdc300abb7/screen1136x1136.jpeg",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "http://a2.mzstatic.com/us/r30/Purple6/v4/b7/a3/7f/b7a37f8e-cad0-dcd0-e0d3-6df20c7dcb78/screen1136x1136.jpeg",
"orientation": null,
"height": 0,
"width": 0
}
],
"padScreenshotUrls": [
{
"key": null,
"url": "http://a2.mzstatic.com/us/r30/Purple6/v4/49/33/94/493394aa-0708-a008-09a1-5abc7542281f/screen480x480.jpeg",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "http://a3.mzstatic.com/us/r30/Purple6/v4/f4/73/62/f47362a3-9c79-2580-006a-aafec996b45b/screen480x480.jpeg",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "http://a1.mzstatic.com/us/r30/Purple/v4/6d/6c/c5/6d6cc5f2-2af7-46c4-0889-62d6ae62b42c/screen480x480.jpeg",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "http://a3.mzstatic.com/us/r30/Purple6/v4/73/8c/68/738c6894-5a25-02ed-938c-0b800582223c/screen480x480.jpeg",
"orientation": null,
"height": 0,
"width": 0
},
{
"key": null,
"url": "http://a1.mzstatic.com/us/r30/Purple4/v4/8d/51/2f/8d512f30-147d-0d38-b785-d4ae8c9d86a1/screen480x480.jpeg",
"orientation": null,
"height": 0,
"width": 0
}
],
"iosSupportedDevices": [
"iPadThirdGen",
"iPadFourthGen",
"iPadMini",
"iPadFourthGen4G",
"iPhone4S",
"iPodTouchFifthGen",
"iPadMini4G",
"iPhone5",
"iPad23G",
"iPhone5c",
"iPadThirdGen4G",
"iPad2Wifi",
"iPodTouchourthGen",
"iPhone-3GS",
"iPhone4",
"iPhone5s"
],
"iosUniversal": true,
"avgRating": null,
"bannerSettings": null
}
]
}
}
Get Application Inventory for a Particular Device
This call gets a list of all applications installed on a particular device.
Authentication
This call requires tenant admin credentials.
HTTP Method
GET
Request URI
/api/v1/app/inventory?q=&rows=rows&start=start&dmPartitionId= dmPartitionId &deviceId= deviceId&facetFq=+INSTALLTYPE+!%3D+%27SYSTEM_APP%27+AND+ INSTALLTYPE+!%3D+%27UPDATED_SYSTEM_APP%27+&sortFields%5B0%5D.name=name
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
rows |
Query string |
How many rows to return per page. Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results. |
20 |
start |
Query string |
Where in the return set to start displaying values. |
0 |
dmPartitionId |
Query string |
The device space ID. |
23003 |
deviceId |
Query string |
The device ID. |
126632 |
facetFq |
Query string |
The search string. The value is: URL Encoded: +INSTALLTYPE+!"%"3D+"%"27SYSTEM_APP" %"27+AND+INSTALLTYPE+!"%"3D+"%"27 UPDATED_SYSTEM_APP"%"27+&sortFields"%" 5B0"%"5D.name=name&sortFields"%"5B0"%"5D.order=ASC URL Unencoded: INSTALLTYPE !"%"3D "%"27SYSTEM_APP"%"27 AND INSTALLTYPE !"%"3D "%"27UPDATED_SYSTEM_APP"%"27 &sortFields"%"5B0"%"5D.name=name&sortFields"%"5B0"%"5D.order=ASC |
|
Example Request
https://[Ivanti Neurons for MDM]/api/v1/app/inventory?q=&rows=20&start=0&dmPartitionId=67730&deviceId=87178&1f7a8cetFq=+INSTALLTYPE+!"%"3D+"%"27SYSTEM_APP"%"27+AND+INSTALLTYPE+!"%"3D+"%"27UPDATED_SYSTEM_APP"%"27+&sortFields"%"5B0"%"5D.name=name&sortFields"%"5B0"%"5D.order=ASC
Response Fields
Field |
Description |
---|---|
errors |
Describes whether there was an error |
result |
Container for the results. |
searchResults |
Container for search results |
deviceId |
The device ID |
mdmChannelId |
|
name |
Name of the app |
identifier |
App identifier |
version |
App version |
displayVersion |
Vesion as displayed |
bundleSize |
13631488 |
appType |
Kind of app this is. Can be public or in-house. |
platformType |
Platform type. Can be android or IOS. |
appConnectConfigState |
|
appConnectConfigStateMessage |
|
appStoreId |
|
iconUrl |
URL to the app icon |
licenseId |
|
licenseStatus |
|
assignedAt |
|
revokedAt |
|
accountId |
|
distributionType |
|
vulnerable |
|
reputationEnabled |
|
winSupportedArchitectures |
|
appVersionId |
|
managed |
true or false. Indicates whether the app is managed. |
installedAt |
The installation date of the current application version when the app has been installed and was discovered as a new app in an inventory checkin report. The value for iOS MAM Only apps is the time that the app was requested to be installed or requested to be updated. In cases where the privacy policy changed from the Ivanti app store only to all apps on the device, the value is the date when the privacy policy changed to allow viewing of the non-MobleIron store apps. |
threatScore |
|
exclusion |
|
totalCount |
How many applications are installed |
offset |
How many records to skip when displaying |
limit |
How many records to get |
Example Response
{ "errors": null, "result": { "searchResults": [ { "deviceId": 87178, "mdmChannelId": "147e5d5c-1734-47b1-8ae9-53b49b96c7cd", "name": "_-_", "identifier": "com.sm.keyslide", "version": "2", "displayVersion": "1.2", "bundleSize": 67112960, "appType": "PUBLIC", "platformType": "IOS", "appConnectConfigState": null, "appConnectConfigStateMessage": null, "appStoreId": "1315674869", "iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple118/v4/16/f7/1e/16f71e3c-cad7-8c85-3ca4-68d7e4fc6eca/source/60x60bb.jpg", "bgColor": null, "androidAppInstallLocation": "UNKNOWN", "licenseId": 0, "licenseStatus": null, "vppProfileId": 0, "vppProfileName": null, "assignedAt": null, "revokedAt": null, "accountId": 0, "distributionType": null, "vulnerable": false, "reputationEnabled": false, "winSupportedArchitectures": null, "appVersionId": 0, "managed": false, "installedAt": null, "threatScore": 0, "exclusion": false }, ... ], "totalCount": 12, "offset": 0, "limit": 20 } }
Get the List of Applications Available to a Particular User
This call produces a list of all applications available to a specific user.
Authentication
This call requires tenant admin credentials.
HTTP Method
GET
Request URI
/api/v1/app/user/accountId
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
accountId |
Path |
Account ID. |
10009 |
Example Request
https://[Ivanti Neurons for MDM]/api/v1/app/user/10009
Response Fields
Field |
Description |
---|---|
errors |
|
result |
|
totalCount |
|
queryTime |
|
searchResults |
|
applicationVersionId |
|
platformType |
|
bundleId |
|
name |
|
whatsNew |
|
displayVersion |
|
iconUrl |
|
iconDataUri |
|
appStoreId |
|
appDetailUrl |
|
categories |
|
Productivity |
|
Business |
|
appType |
|
deviceFamily |
|
iosUniversal |
|
featuredStatus |
|
free |
|
installed |
|
updateAvailable |
|
cost |
|
currency |
|
size |
|
description |
|
installUrl |
|
managedAppInstall |
|
vppState |
|
vppInvitationUrl |
|
createdAt |
|
modifiedAt |
|
developerName |
|
averageRating |
|
ratingCount |
|
reinstallAsManaged |
|
reviewDetailUrl |
|
reviewListUrl |
|
phoneScreenshotUrls |
|
cdnGuid |
|
url |
|
orientation |
|
height |
|
width |
|
tabletScreenshotUrls |
|
cdnGuid |
|
url |
|
orientation |
|
height |
|
width |
|
firstReview |
|
offset |
|
Example Response
{
"errors": null,
"result": {
"totalCount": 20,
"queryTime": 0,
"searchResults": [
{
"applicationVersionId": 18437,
"platformType": "IOS",
"bundleId": "com.adobe.Adobe-Reader",
"name": "Adobe Reader",
"whatsNew": "- iPhone 6, iPhone 6 Plus, and iOS 8 support",
"displayVersion": "11.6.3",
"iconUrl": "http://a1.mzstatic.com/us/r30/Purple5/v4/f9/8d/29/f98d2963-f467-eb5c-af47-b8a904320320/Icon-57.png",
"iconDataUri": null,
"appStoreId": 469337564,
"appDetailUrl": null,
"categories": [
"Productivity",
"Business"
],
"appType": "PUBLIC",
"deviceFamily": "ALL",
"iosUniversal": true,
"featuredStatus": "FEATURED_BANNER",
"free": true,
"installed": false,
"updateAvailable": false,
"cost": 0,
"currency": "USD",
"size": 11823052,
"description": "Adobe Reader is the free, trusted leader for reliably viewing and interacting with PDFs on your iPad, iPhone, and iPod touch.
VIEW PDFs
• Quickly open PDF documents from email, the web, or any app that supports “Open In…”
• Search, scroll, zoom in and out
• Choose Single Page or Continuous Scroll mode
• Use Night mode and Brightness Lock for ease of reading
ANNOTATE & REVIEW PDFs
• Make comments on PDFs using sticky notes and drawing tools
• Highlight and markup text with annotation tools
FILL OUT FORMS
• Quickly fill out PDF forms by typing text into fillable fields
• Save, sign, and forward to others
SIGN PDFs
• Use your finger to e-sign any PDF document
• Have other people sign in person right on your touchscreen
STORE AND SHARE FILES
• Sign in to your free Acrobat.com account
• Store and access files in the cloud
• Easily share them with others
IN-APP PURCHASE
If you’d like to do even more with PDFs from your mobile device, subscribe to one of Adobe’s online services to create PDFs and export PDFs to Word or Excel. You can get started without ever leaving your Adobe Reader mobile app – and you can use the services from your computer and mobile device.
CREATE PDF FILES
• Subscribe to Adobe PDF Pack using In-App Purchase
• Create PDF files
• Convert Office files and camera photos to PDF
EXPORT PDF FILES TO WORD OR EXCEL
• Subscribe to Adobe Export PDF using In-App Purchase
• Save PDF documents as editable Microsoft Word or Excel files
IN-APP PURCHASE DETAILS
• Adobe PDF Pack subscription is $9.99 US dollars per month (includes Adobe ExportPDF)
• Adobe ExportPDF subscription is $23.99 US dollars per year
• Payment will be charged to iTunes Account at confirmation of purchase
• Subscriptions automatically renew unless auto-renew is turned off at least 24-hours before the end of the current period
ARE YOU ALREADY A SUBSCRIBER?
• If you have a subscription to ExportPDF, PDF Pack, Acrobat Standard, or Acrobat Pro – just sign in to convert and export PDFs on the go.
By downloading, you agree to the Terms of Use at
http://www.adobe.com/products/eulas/#mobileproducts.",
"installUrl": null,
"managedAppInstall": false,
"vppState": "NOT_APPLICABLE",
"vppInvitationUrl": null,
"createdAt": 1391639730639,
"modifiedAt": 1391639730639,
"developerName": "Adobe",
"averageRating": null,
"ratingCount": 0,
"reinstallAsManaged": false,
"reviewDetailUrl": null,
"reviewListUrl": null,
"phoneScreenshotUrls": [
{
"cdnGuid": null,
"url": "http://a3.mzstatic.com/us/r30/Purple1/v4/f3/f3/79/f3f37907-74fe-3de1-858d-6a737eb1872d/screen480x480.jpeg",
"orientation": "PORTRAIT",
"height": 480,
"width": 334
},
{
"cdnGuid": null,
"url": "http://a2.mzstatic.com/us/r30/Purple3/v4/7a/16/ac/7a16ac44-b72d-19d4-2c95-7a4b2976b822/screen480x480.jpeg",
"orientation": "PORTRAIT",
"height": 480,
"width": 334
},
{
"cdnGuid": null,
"url": "http://a1.mzstatic.com/us/r30/Purple5/v4/1a/cc/6a/1acc6a6a-7bb8-8deb-7710-077306d9b96a/screen480x480.jpeg",
"orientation": "PORTRAIT",
"height": 480,
"width": 334
},
{
"cdnGuid": null,
"url": "http://a4.mzstatic.com/us/r30/Purple1/v4/48/00/07/4800070d-2aaa-7ee0-6a91-8cfd4c59b830/screen480x480.jpeg",
"orientation": "PORTRAIT",
"height": 480,
"width": 334
}
],
"tabletScreenshotUrls": [
{
"cdnGuid": null,
"url": "http://a2.mzstatic.com/us/r30/Purple3/v4/70/95/61/7095615b-6bbb-03b8-66c3-a515fdf5d932/screen480x480.jpeg",
"orientation": "PORTRAIT",
"height": 480,
"width": 367
},
{
"cdnGuid": null,
"url": "http://a1.mzstatic.com/us/r30/Purple5/v4/45/29/b1/4529b1e0-6e7c-9644-f0ad-5ebf4edde026/screen480x480.jpeg",
"orientation": "PORTRAIT",
"height": 480,
"width": 367
},
{
"cdnGuid": null,
"url": "http://a3.mzstatic.com/us/r30/Purple3/v4/d6/92/fc/d692fca9-f1d9-427d-5212-dac3b40c3729/screen480x480.jpeg",
"orientation": "PORTRAIT",
"height": 480,
"width": 367
},
{
"cdnGuid": null,
"url": "http://a2.mzstatic.com/us/r30/Purple3/v4/df/ca/64/dfca6440-e1ab-1936-c2e1-2e0ef22ec611/screen480x480.jpeg",
"orientation": "PORTRAIT",
"height": 480,
"width": 360
}
],
"firstReview": false
},
…
],
"offset": 0
}
}
"vulnerable": false, "reputationEnabled": false, "winSupportedArchitectures": null, "appVersionId": 0, "managed": false, "installedAt": null, "threatScore": 0, "exclusion": false }, ... ], "totalCount": 12, "offset": 0, "limit": 20 } }
Get the List of Applications Available to a Particular Device
This call produces a list of all applications available to a specific device.
Authentication
This call requires tenant admin credentials.
HTTP Method
GET
Request URI
/api/v1/app/device/deviceId
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
deviceId |
Path |
Device ID. |
144334 |
Example Request
curl --location 'https://[Ivanti Neurons for MDM]/api/v1/app/device/144334' \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic <token>'
Response Fields
Field |
Description |
---|---|
errors |
|
result |
Container for the results. |
searchResults |
Container for the found apps results. |
applicationVersionId |
|
platformType |
|
bundleId |
|
name |
|
whatsNew |
|
displayVersion |
|
iconUrl |
|
bgColor |
|
iconDataUri |
|
appStoreId |
|
appDetailUrl |
|
categories |
|
appType |
|
deviceFamily |
|
iosUniversal |
|
featuredStatus |
|
free |
|
installed |
|
updateAvailable |
|
cost |
|
currency |
|
size |
|
description |
|
installUrl |
|
androidAppInstallType |
|
managedAppInstall |
|
vppState |
|
vppInvitationUrl |
|
createdAt |
|
modifiedAt |
|
developerName |
|
averageRating |
|
ratingCount |
|
reinstallAsManaged |
|
reviewDetailUrl |
|
reviewListUrl |
|
prepaid |
|
requestedAppUrl |
|
hasPrerequisites |
|
prerequisites |
|
appDeviceState |
Contains the installation state, including the reason for any installation error. |
phoneScreenshotUrls |
|
tabletScreenshotUrls |
|
itComments |
|
customAttributes |
|
firstReview |
|
totalCount |
|
offset |
|
limit |
|
Example Response
{ "errors": null, "result": { "searchResults": [ { "applicationVersionId": 211531, "platformType": "ANDROID", "bundleId": "notizen.bloc.notes.notas.notepad.notatnik.note", "name": "ClearNote", "whatsNew": "", "displayVersion": "1.4.3", "iconUrl": "https://dhufqvfidrf46.cloudfront.net/f2c/a3a/f2ca3a36-0545-4952-aaae", "bgColor": null, "iconDataUri": null, "appStoreId": null, "appDetailUrl": null, "categories": [ "B1" ], "appType": "IN_HOUSE", "deviceFamily": "ALL", "iosUniversal": false, "featuredStatus": "NONE", "free": true, "installed": false, "updateAvailable": false, "cost": null, "currency": null, "size": 7940389, "description": "", "installUrl": null, "androidAppInstallType": null, "managedAppInstall": false, "vppState": "NOT_APPLICABLE", "vppInvitationUrl": null, "createdAt": 1621579962142, "modifiedAt": 1638862232294, "developerName": "", "averageRating": null, "ratingCount": 0, "reinstallAsManaged": false, "reviewDetailUrl": null, "reviewListUrl": null, "prepaid": false, "requestedAppUrl": null, "hasPrerequisites": false, "prerequisites": [], "appDeviceState": "Not Installed", "phoneScreenshotUrls": [], "tabletScreenshotUrls": [], "itComments": null, "customAttributes": null, "firstReview": false } ... ], "totalCount": 9, "offset": 0, "limit": 50 } }
List Devices with a Specific App in its App Inventory
This call gets a list of devices with a specific app in its app inventory. For example, you may need to find all of the devices which have version 303 of the email app in their app inventory.
Authentication
This call requires tenant admin credentials.
HTTP Method
GET
Request URI
/api/v1/device?fq=version='n' AND bundleId='id'&type=APP_INVENTORY&platformType=type&dmPartitionId=id
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
version |
Path |
The version of the app to find. Can be a list of versions with OR operators, for example,unencoded: (version='19' OR version='11' OR version='17' OR version='12' OR version='13'). |
version='303' |
bundleId |
Path |
The bundle ID of the target app. |
bundleId='com.android.mi.email' |
platformType |
Path |
The platform type of the app. IOS or ANDROID. |
ANDROID |
type |
Path |
Type of app to find. |
type=APP_INVENTORY |
dmPartitionId |
Path |
Target device space ID. |
dmPartitionId=23003 |
rows |
Path |
How many rows to return in the query. Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results. |
50 |
start |
Path |
Where in the results set to start displaying the rows. |
0 |
Example Request
URL Encoded:
https://[Ivanti Neurons for MDM]/api/v1/device?q=&rows=50&start=0&fq=version%3D%27303%27+AND+bundleId%3D%27com.android.mi.email%27&type=APP_INVENTORY&platformType=ANDROID&dmPartitionId=23003
Unencoded:
https://[Ivanti Neurons for MDM]/api/v1/device?q=&rows=50&start=0&fq=version='303' AND bundleId='com.android.mi.email'&type=APP_INVENTORY
Response Fields
Field |
Description |
---|---|
errors |
Indicates whether there were errors. |
result |
Container for results metadata. |
totalCount |
How many devices were found with the target app in its inventory. |
queryTime |
How long did the query take to execute. |
searchResults |
Container for found devices. |
id |
Device id. |
phoneNumber |
Device phone number. |
deviceModel |
Device model |
platformType |
Platform type. |
platformVersion |
Platform version. |
lastCheckin |
When the device last checked in. |
registrationState |
Device registration state. |
displayName |
Device display name. |
firstName |
First name of device owner. |
lastName |
Last name of device owner. |
uid |
Uid of device owner. |
emailAddress |
Email of device owner. |
clientVersion |
Version of the Ivanti client on the device. |
manufacturer |
Device manufacturer. |
imei |
Device imei code. |
wifiMacAddress |
Device wifi Mac address. |
serialNumber |
Device serial number. |
currentCarrierNetwork |
Device current carrier network. |
subscriberCarrierNetwork |
Device subscriber carrier network. |
locale |
Locale of the device. |
ownershipType |
|
complianceState |
Compliance state of the device. |
roaming |
Is the device roaming. |
supervised |
|
udid |
|
clientLastCheckin |
Last time the client checked in. |
iccid |
|
currentMcc |
|
currentMnc |
|
subscriberMcc |
|
subscriberMnc |
|
prettyModel |
Model name of the device. |
policyViolationCount |
How many times has the device violated a policy. |
latitude |
Latitude of the device’s location. |
longitude |
Longitude of the device’s location. |
locationLastCapturedAt |
When device location last captured. |
lastRegistrationTime |
When owner last registered the device. |
locationStatusDetail |
Container for location status data. |
lastUpdatedAt |
|
locationStatus |
|
actionExceptionCodes |
Container for action exception codes. |
null |
null |
supportLockMessage |
|
ownerId |
Id of the device’s owner. |
legalOwnerId |
Legal owner of the device, for shared iPad devices. |
legalOwnerEmailAddress |
Email address of the device legal owner, for shared iPad devices. |
kioskState |
Is this device in kiosk mode. |
customAttributes |
Does this device have any custom attributes. |
offset |
How many records skipped in this record set. |
limit |
How many may be displayed in this record set. |
Example Response
{
"errors": null,
"result": {
"totalCount": 6,
"queryTime": 0,
"searchResults": [
{
"id": 281357,
"phoneNumber": "14088580543",
"deviceModel": "Nexus 6",
"platformType": "ANDROID",
"platformVersion": "5.0.1",
"lastCheckin": 1423164808861,
"registrationState": "ACTIVE",
"displayName": "Cliff Clasen",
"firstName": "Cliff",
"lastName": "Clasen",
"uid": "[email protected]",
"emailAddress": "[email protected]",
"clientVersion": "3.0.0-beta1.5",
"manufacturer": "motorola",
"imei": "355458060508091",
"wifiMacAddress": "ec:88:92:b7:db:cb",
"serialNumber": "ZX1G322DNT",
"currentCarrierNetwork": "T-Mobile",
"subscriberCarrierNetwork": "",
"locale": "en_US",
"ownershipType": "UNKNOWN",
"complianceState": true,
"roaming": false,
"supervised": null,
"udid": null,
"clientLastCheckin": 1423164808861,
"iccid": "8901260222782933598",
"currentMcc": "310",
"currentMnc": "260",
"subscriberMcc": "310",
"subscriberMnc": "260",
"prettyModel": "Nexus 6",
"policyViolationCount": null,
"latitude": 37.654846,
"longitude": -121.867966,
"locationLastCapturedAt": 1423154014501,
"lastRegistrationTime": 1419645191747,
"locationStatusDetail": {
"lastUpdatedAt": 1423154014501,
"locationStatus": "AVAILABLE"
},
"actionExceptionCodes": [
null
],
"supportLockMessage": false,
"ownerId": 10220,
"legalOwnerId": null,
"legalOwnerEmailAddress": null,
"kioskState": "NOT_CONFIGURED",
"customAttributes": null
},
…
],
"offset": 0,
"limit": 50
}
}
Create an App
This call creates an app. You can create in-house apps or public apps. For in-house apps, use the app-data and platformType parameters. For a public app, use the itunes-id parameter. There is no size limit on apps. The limiting factor would be the available disk space.
Authentication
This call requires tenant admin credentials.
HTTP Method
POST
Request URI
api/v1/app
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
app-data |
Path |
The type is org.springframework.web.multipart.MultipartFile. Specify the location of the app. |
app-data=@/Users/Sally.Smith/Downloads/PayDay.ipa |
platformType |
Path |
The platform type of the app. IOS or ANDROID. |
IOS |
newVersion |
Path |
Flag to indicate whether app is a new version. |
true |
itunes-id |
|
iTunes identifier for the app. |
422020153 |
overrideUrl |
Request body |
The app override URL points to a premise-based URL that serves the application. Available for in-house apps for iOS and also in the Update In-House App Details call. |
mycompanywebserver.mi.com |
Example Request
In-house App
curl -k -u '[email protected]:Nj5oby112233' -XPOST -F 'platformType=IOS' -F 'app-data=@/Users/Sally.Smith/Downloads/PayDay.ipa' "https://[Ivanti Neurons for MDM host]/api/v1/app"
Public App
https://[Ivanti Neurons for MDM]/api/v1/app?itunes-id=422020153
Example Response
{
"errors": null,
"result": true
}
Update an App
To update an app and copy the previous version’s artifacts, you make two calls that:
Uploading the new APK file
Authentication
This call requires tenant admin credentials.
HTTP Method
POST
Request URI
api/v1/app
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
app-data |
Request body |
The path to the app. |
app-data=@/Users/dmurthy/Documents/ InHouseApps/HelpAtWork-Enterprise-2.ipa |
newVersion |
Request body |
Boolean. Is this a new version. true or false. |
true |
cmPartitionId |
Request body |
The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call. |
20000 |
platformType |
Request body |
The platform type, IOS or ANDROID. |
IOS |
|
|
|
|
Example Request
curl -H 'Content-type:multipart/form-data' -kv -X POST -u [username]:[password] "https://[Ivanti Neurons for MDM]/api/v1/app" \
-F "app-data=@/Users/dmurthy/Documents/InHouseApps/HelpAtWork-Enterprise-2.ipa" \
-F "newVersion=true" \
-F "cmPartitionId=20000" \
-F "platformType=IOS"
Response Fields
Field |
Description |
---|---|
errors |
Indicates whether there were errors. |
result |
Container for results data. |
addedToExisitingApp |
Reflects whether the app was added to the existing app. |
applicationId |
The ID of the updated app. |
applicationVersionId |
The ID of the new version of the app. You will need this value to use for the targetApplicationVersionId parameter when you make the Copying Previous App Version Artifacts call. |
Example Response
{
"errors": null,
"result": {
"addedToExisitingApp": true,
"applicationId": 16001,
"applicationVersionId": 17002
}
}
Copying Previous App Version Artifacts
This call copies the previous version's screenshots, description, and user distribution to the new version. To make this call, you will need the applicationVersionId value returned by the Uploading the new APK file call to use for the targetApplicationVersionId parameter.
Authentication
This call requires tenant admin credentials.
HTTP Method
PUT
Request URI
api/v1/app
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
targetApplicationVersionId |
Request body |
The ID of the new app version. This is the value returned as the applicationVersionId field of the Uploading the new APK file call. |
17002 |
Example Request
curl -kv -X PUT -u [username]:[password] "https://[Ivanti Neurons for MDM]/api/v1/app" -d "targetApplicationVersionId=17003"
Example Response
{
"errors": null,
"result": true
}
Update In-House App Screenshots
This call updates an in-house app’s screenshots.
Authentication
This call requires tenant admin credentials.
HTTP Method
POST
Request URI
api/v1/app/version/{id}/screenshots
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
id |
Path |
The id of the app for which to update screenshots |
51955 |
--data-binary |
Request body |
Specifies the screenshot file to upload. |
$'------WebKitFormBoundary7PINjpFmFrFvAxX9\r\nContent-Disposition: form-data; name="phoneScreenshots[0].file"; filename="Prince_logo.svg.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundary7PINjpFmFrFvAxX9\r\nContent-Disposition: form-data; name="X-XSRF-Token"\r\n\r\n6130E7E8F8A0DEA95AF08C66DB1D00F401BC1CDA\r\n------WebKitFormBoundary7PINjpFmFrFvAxX9--\r\n' |
Request Headers
Header |
Description |
Example Value |
---|---|---|
Content-Type: multipart/form-data; boundary |
Declaration of conent type and boundary. |
-H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryhylqg7c8DT6wyZ1r' |
Accept |
Specifies which content types to accept. |
'Accept: application/json, text/plain, */*' |
Example Request
curl 'https://[Ivanti Neurons for MDM]/api/v1/app/version/52161/screenshots' -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7PINjpFmFrFvAxX9' -H 'Accept: application/json, text/plain, */*' --data-binary $'------WebKitFormBoundary7PINjpFmFrFvAxX9\r\nContent-Disposition: form-data; name="phoneScreenshots[0].file"; filename="Prince_logo.svg.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundary7PINjpFmFrFvAxX9\r\nContent-Disposition: form-data; name="X-XSRF-Token"\r\n\r\n6130E7E8F8A0DEA95AF08C66DB1D00F401BC1CDA\r\n------WebKitFormBoundary7PINjpFmFrFvAxX9--\r\n' --compressed
Example Response
{
"errors": null,
"result": true
}
Update In-House App Icons
This call updates an in-house app’s icons for iOS and macOS apps.
Authentication
This call requires tenant admin credentials.
HTTP Method
POST
Request URI
/api/v2/app/inhouse/{id}/icon?preview=true&dataUri=true
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
id |
Path |
The id of the app for which to update icons |
191477 |
--data-raw |
Request body |
Specifies the icon file to upload. |
$'------WebKitFormBoundaryzx9yt1iL0adtOcBY\r\nContent-Disposition: form-data; name="image-data"; filename="dmicon.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundaryzx9yt1iL0adtOcBY\r\nContent-Disposition: form-data; name="X-XSRF-Token"\r\n\r\nC19031DDBA704882F398337E3E5C4BA82A97AFC2\r\n------WebKitFormBoundaryzx9yt1iL0adtOcBY--\r\n' \ |
Request Headers
Header |
Description |
Example Value |
---|---|---|
Content-Type: multipart/form-data; boundary |
Declaration of conent type and boundary. |
-H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryzx9yt1iL0adtOcBY'' |
Accept |
Specifies which content types to accept. |
'Accept: application/json, text/plain, */*' |
Example Request
curl 'https://[Ivanti Neurons for MDM]/api/v2/app/inhouse/191477/icon?preview=true&dataUri=true' \ -H 'Accept: application/json, text/plain, */*' \ -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryzx9yt1iL0adtOcBY' \ --data-raw $'------WebKitFormBoundaryzx9yt1iL0adtOcBY\r\nContent-Disposition: form-data; name="image-data"; filename="dmicon.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundaryzx9yt1iL0adtOcBY\r\nContent-Disposition: form-data; name="X-XSRF-Token"\r\n\r\nC19031DDBA704882F398337E3E5C4BA82A97AFC2\r\n------WebKitFormBoundaryzx9yt1iL0adtOcBY--\r\n' \ --compressed
Example Response
data:image/png;base64,(and then the image data)
Update In-House App Details
This call updates an in-house app’s:
•Name
•Display version
•Category
•What’s New
•Description
Authentication
This call requires tenant admin credentials.
HTTP Method
PUT
Request URI
/api/v2/app/inhouse/{applicationVersionId}
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
applicationVersionId |
Path |
Mandatory Version of the app to update. Use GET https:// [Ivanti Neurons for MDM]/api/v1/app/{id} to get the applicationVersionId. {id} is the app ID. Use GET https://[Ivanti Neurons for MDM]/api/v1/app?q=&cmPartitionId={cmPartitionId} to get the value for {id} |
54710 |
dmPartitionId |
Request body |
Device space ID for the call. |
23505 |
dmPartitionDistributionType |
Request body |
Distribution type for the call. |
ALL |
enableReviews |
Request body |
Mandatory Are reviews enabled? Use GET https://[Ivanti Neurons for MDM]/api/v1/app/{id} to get the value for this parameter. |
true |
enableRatings |
Request body |
Mandatory Are ratings enabled? Use GET https://[Ivanti Neurons for MDM]/api/v1/app/{id} to get the value for this parameter. |
true |
appType |
Request body |
Indicates the type of app to update. |
IN_HOUSE |
mamWithOutMDM |
Request body |
Is this application under mobile application management (MAM) without mobile device management (MDM)? |
false |
id |
Request body |
Mandatory ID of the app to update. Use GET https://[Ivanti Neurons for MDM]/api/v1/app?q=&cmPartitionId={cmPartitionId} to get the value for this parameter. |
43488 |
whatsNew |
Request body |
New description for what’s new. |
Better memory management |
description |
Request body |
New description. |
Great word game! |
displayVersion |
Request body |
Mandatory New display version. Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value. |
2.0.0 |
primaryVersion |
Request body |
Mandatory Primary version of the app. Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value. |
200 |
developerName |
Request body |
Name of the app’s developer. Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value. |
|
name |
Request body |
Mandatory New name of app. Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value. |
Words against the World |
overrideUrl |
Request body |
The app override URL points to a premise-based URL that serves the application. |
mycompanywebserver.mi.com |
platformAppId |
Request body |
Mandatory App ID on the target platform Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value. |
rz.scrambler.app |
categoryIds |
Request body |
New category IDs. Use GET https://[Ivanti Neurons for MDM]/api/v1/app/category to obtain the category IDs. |
25185 |
distributionSettings |
Request body |
Container for app distribution settings. |
|
groupIds |
Request body |
Group IDs to which to distribute the app. |
|
accountIds |
Request body |
Account IDs to which to distribute the app |
|
configDistributionSettings |
Request body |
Config distribution settings for the app. |
|
Example Request
curl -X PUT \
https://[Ivanti Neurons for MDM]/api/v2/app/inhouse/54710 \
-H 'accept: application/json' \
-H 'authorization: Basic <token>' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"dmPartitionId": 23505,
"dmPartitionDistributionType": "ALL",
"enableReviews": true,
"enableRatings": true,
"appType": "IN_HOUSE",
"mamWithOutMDM": false,
"id": 43488,
"whatsNew": "Better memory management.",
"description": "Great word game!",
"displayVersion": "2.0.0",
"primaryVersion": "200",
"developerName": "",
"name": "Words against the World",
"overrideUrl": "",
"platformAppId": "rz.scrambler.app",
"categoryIds": [
25185
],
"distributionSettings": {
"groupIds": [ ],
"accountIds": [ ]
},
"configDistributionSettings": { }
}'
Example Response
{
"errors": null,
"result": true
}
Get a List of In-House Apps
This call gets a list of in-house apps
Authentication
This call requires tenant admin credentials.
HTTP Method
GET
Request URI
api/v1/app
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
rows |
Path |
How many rows to return in the query. Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results. |
20 |
start |
Path |
Where in the results set to start displaying the rows. |
0 |
cmPartitionId |
Path |
The content partition ID. You can get it with the GET tenant metadata call. |
20003 |
facetFq |
Path |
The query for in house, which is, url encoded, APPTYPE+%3D+%27IN_HOUSE%27, and not url encoded: APPTYPE = 'IN_HOUSE'. To see a list of public apps, it is an identical call, except use PUBLIC instead of IN_HOUSEin the call. URL encoded, like this: facetFq:APPTYPE+%3D+%27PUBLIC%27+. |
facetFq=APPTYPE+%3D+%27IN_HOUSE%27+ |
sortFields[0].name |
Path |
The column on which to sort. |
name |
sortFields[0].order |
Path |
Sort order, ASC or DESC |
|
Example Request
https://[Ivanti Neurons for MDM]/api/v1/app?q=&rows=20&start=0&cmPartitionId=20003&facetFq=APPTYPE+%3D+%27IN_HOUSE%27+&sortFields%5B0%5D.name=name&sortFields%5B0%5D.order=ASC
Example Response
{
"errors":null,
"result":{
"totalCount":142,
"queryTime":11,
"searchResults":[
{
"name":"2048",
"description":"Inspired by Gabriele Cirulli game available on the web: http://gabrielecirulli.github.io/2048/\n\nJoin the numbers and get to the 2048 tile!\n\nSwipe to move all tiles. When two tiles with the same number touch, they merge into one.\n\nGet to the 2048 tile, and reach a high score!",
"iconUrl":"http://a5.mzstatic.com/us/r30/Purple3/v4/73/25/fe/7325fe5c-100c-b853-b0a7-5a0602b58e74/AppIcon57x57.png",
"currency":"USD",
"cost":0.0,
"size":3463448,
"versions":[
{
"name":"2048",
"featuredStatus":"NONE",
"primaryVersion":null,
"secondaryVersion":"1.8",
"displayVersion":"1.8",
"minOsVersion": "1.6",
"applicationVersionId":19278,
"size":3463448,
"distributionCount":null
}
],
"id":18122,
"createdAt":1401908341993,
"createdBy":11902,
"modifiedAt":1413266398620,
"modifiedBy":10010,
"platformAppId":"com.ketchapp.2048",
"platformType":"IOS",
"appType":"PUBLIC",
"appStoreId":840919914,
"cmPartitionId":20003,
"distributionCount":null,
"avgRating":null,
"ratingCount":0,
"latestDisplayVersion":"1.8",
"featuredStatus":"NONE"
},
…
],
"offset":0,
"limit":20,
"facetedResults":{
"DEVICETYPE":{
"PHONE":0,
"ALL":131,
"PAD":11
},
"FEATUREDSTATUS":{
"FEATURED_BANNER":15,
"FEATURED":60,
"NONE":67
},
"PLATFORMTYPE":{
"ANDROID":32,
"IOS":110
},
"APPTYPE":{
"IN_HOUSE":24,
"PUBLIC":142
}
},
"totalUnfilteredResultCount":178
}
}
Get a List of In-House Apps and Associated Provisioning Profile
This call returns a list of in-house apps and any provisioning profile attached to them for a designated deviceSpaceId. This information would be helpful to administrators who need to renew provisioning profiles before expiration. Provisioning profiles are not Mobilelron Ivanti Neurons for MDM configurations, rather, Apple Developer site profiles that authorize devices to launch in-house apps.
Authentication
This call requires tenant admin credentials.
HTTP Method
GET
Request URI
api/v1/app/inhouse/profiles?rows={n}&start={n}&dmPartitionId={dmPartitionId}
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
rows |
Path |
Data Type: Number How many rows to return in the query. Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results. |
5 |
start |
Path |
Data Type: Number Where in the results set to start displaying the rows. |
0 |
dmPartitionId |
Path |
Required Data Type: Number The device partition ID. |
23000 |
Example Request
curl -X GET -kv -u [email protected]:AsdFjYu -i -H 'Authorization:Basic <token>' "https://[Ivanti Neurons for MDM]/api/v1/app/inhouse/profiles?rows=5&start=0&dmPartitionId=23000"
Response Fields
Field |
Description |
---|---|
errors |
Null if no errors. |
result |
JSON container for results. |
searchResults |
JSON container for search results. |
bundleId |
Bundle ID of the app. |
platformType |
Platform type of the app, for example, IOS. |
appType |
Will always be IN_HOUSE because this call returns in-house apps. |
name |
Name of the app. |
primaryVersion |
Primary version of the app. |
displayVersion |
Display version of the app. |
minOsVersion |
Minimum required OS version for the app. |
applicationVersionId |
Version ID of the app. |
provisioningProfile |
JSON container for provisioning profile results. |
uuid |
UUID of provisioning profile. |
certs |
JSON container for certificate results. |
issuingName |
Issuing name of certificate. |
expiration |
Timestamp of certificate expiration. |
serialNumber |
Certificate serial number. |
name |
Certificate name. |
id |
Provisioning profile ID. |
devTeamName |
Name of development team. |
expirationDate |
Timestamp of provisioning profile expiration. |
totalCount |
How many records found. |
offset |
Offset setting in originating call. |
limit |
Limit setting in originating call. |
Example Response
{ "errors": null, "result": { "searchResults": [ { "bundleId": "com.mobileiron.enterprise.HelloAppConnect", "platformType": "IOS", "appType": "IN_HOUSE", "name": "Hello AppConnect", "primaryVersion": "1.0", "displayVersion": "1.0", "minOsVersion": "4.0.3", "applicationVersionId": 17000, "provisioningProfile": { "uuid": "87d4542c-8ad9-4484-8b05-5141605c33a5", "certs": [ { "issuingName": "CN=Apple Worldwide Developer Relations Certification Authority, OU=Apple Worldwide Developer Relations, O=Apple Inc., C=US", "expiration": 1631644174000, "serialNumber": 8578898181722912226, "name": "C=US, O=MobileIron, OU=W8M2C9P2R6, CN=iPhone Distribution: MobileIron, UID=W8M2C9P2R6" } ], "id": 36500, "devTeamName": "MobileIron", "expirationDate": 1568675261000 } } ], "totalCount": 1, "offset": 0, "limit": 5 } }
Copy Latest In-House App Version Metadata
This call copies the latest In-house app version metadata.
Authentication
This call requires tenant admin credentials.
HTTP Method
PUT
Request URI
api/v1/app
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
targetApplicationVersionId |
Request Body |
The target app version id for which the metadata must be copied. |
111111 |
Example Request
Example Request URL
curl -X PUT 'https://<hostname>/api/v1/app?targetApplicationVersionId=111111’\
--header 'Authorization: Basic Auth =='\
--header 'Content-Type: application/json' \
Discover Devices Eligible for a Given App
This call returns the device GUIDs that do not have the given app installed yet, but are eligible to receive the given app based on the distribution criteria defined by the admin.
Authentication
This call requires tenant admin credentials.
HTTP Method
GET
Request URI
api/v1/app/eligibledevices
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
dmPartitionId |
Query |
Required Data Type: Long The device partition ID. |
23000 |
appId |
Query |
Required Data Type: String The platformAppId as returned by GET /api/v2/app. |
com.mobileiron.anyware.ios |
appVersion |
Query |
Data Type: String The version of the app. Only valid for in-house apps. |
1.0.6 |
platformType |
Query |
Required Data Type: String The platform type. Can be ANDROID or IOS. |
IOS |
Response Fields
Field |
Description |
---|---|
errors |
null if no errors. |
result |
JSON container for results, which is a list of eligible device GUIDs for a successful call, or a message that the application was not found when the call cannot find the app specified by appId. You can use the GUIDs when installing an app as described in Install an App to devices with specified GUIDs - Synchronous - iOS Only. |
Example Requests
For a public app or latest version of in house app
curl -X GET -u '<user>:<password>' "https://<HOST>/api/v1/app/eligibledevices?dmPartitionId=23000&appId=com.mobileiron.anyware.ios&platformType=IOS"
For a specific version of an in house app
curl -X GET -u '<user>:<password>' "https://<HOST>/api/v1/app/eligibledevices?dmPartitionId=23000&appId=com.mobileiron.enterprise.EnggSpecs&appVersion=1.0.6&platformType=IOS"
Example Response
Success:
{ "errors": null, "result": [ "3fc9c1df-4f87-4db5-9569-362064a1c2ce", "17045366-798e-4a96-9a1c-bbe72db6e020", "f886f32f-f818-4ddc-bc58-73492d6fd3fc", "6dfbcdeb-b582-474b-97cb-12f0aa5c238a", "3c0f8242-31bb-4ebc-83c3-6f9b814efc6d", "182f601a-a071-40fc-8736-babc19bc1284", "cbd269f7-51fd-4c60-a770-5be709a9ed6c", "101e96f6-11e2-4f5f-9145-e24bb98d2824", "70f9337b-6f29-454b-964d-47f328bffad5", "c1bf665d-8baa-41a6-aeba-58bdbf071d7f", "61a8bdb1-132e-4b01-b5b8-240ff760b306", "524c7ee5-3cf8-4ab4-857c-cb81fd206ca5", "c16ca13a-0d0e-4267-93fc-22456a68c91b", "a4bb56ec-86e8-4b54-ae5d-7d99a0f4e642", "ec57a972-ce82-4651-89b4-588ccab348f8", "3abcdfb3-b186-4e88-ba1a-862479f43fba", "f2fd2ad7-5888-403f-a738-d4a9a9241642", "b9d612e7-d895-45b9-8944-8f13aed5ecf6", "a6991857-c151-48bd-9bd0-b7704c6c4ce7", "82849619-ee8d-46ab-a9d3-910e45fc2e92", "bc63b64e-a851-4b61-86ed-c4e014fac81e", "8bfb95ac-f20b-4cd4-bb87-bb3202109d88", "e9540bfa-39dc-41e0-8052-ef0a02b1bc88", "4457ae76-b1c1-445c-ad00-b6e8eaf854c7", "78e9b28b-9616-4f7c-90b6-239ee816e532", "7f97cb39-3592-4476-9cf1-20a684f1e494", "7a7741fb-8a98-4886-a2a4-16f06029fc90", "79b8f175-8132-4a29-a7cd-dea7bb28bdc3", "f0dda2ce-96ba-4b5d-836f-a91cdd06818f", "f45a72ca-a3b7-49e1-9c33-f635a00cca20", "dacb9468-e0ec-4489-aaaf-bb680203367f", "9a55a26f-db96-404b-8bae-337bb3cce435", "84ae3cef-8f0d-49ec-bc03-6bfe3140f8de", "c2fc7567-c033-4a24-9b90-0cea78cc2482", "bc34d594-d2d2-479c-b179-459407067788", "c57a99df-b165-4756-84f2-ad53cf532087", "3e01ed72-0ea9-472e-b309-8362f6b6bb74", "587ae91c-9d8c-4139-9bb8-180272484ff2", "96658e47-3ddc-44d5-9b1e-038300a877a2", "42134b5c-e0ae-44bb-9a0b-65671d2ec5cc", "7bb564da-adaa-429f-aad3-56d9b1c45a0a", "72e64c50-256c-4f85-b09f-46ceae9718cd", "dbccbe70-7499-4676-88b0-a6d5d298752e", "cf192316-2203-4618-bf48-fd9ee4a6ecf8", "88eb4678-7250-484f-b8c3-5e93d46cc986", "dee29d04-fe74-40ae-b0e0-5d8f47367184", "28643e0b-86cf-4c60-b807-ccd44453cbdd", "74fd25d0-c710-461a-ac46-e853b2654131", "b0513d07-5fe9-4b92-9dbe-ff25d4e90af3", "91a241ed-9297-4918-ae75-8cf443284800", "58f1a629-068f-45f2-88c7-f939d06b5ff1", "f0704c9b-33e9-490f-8a90-4e4e45f3d0b2", "308617c9-0902-4106-ac43-a90f98b26df6", "1eb4e3af-4f0d-424e-b19d-c3356d9aa1e6", "52cd5ccf-2859-4e5e-a5d0-31ec7164b445", "86748059-8d13-427c-a582-3e9940c0ba13", "413f6e38-0399-41ca-a83f-509542f40a37", "c5c4bfc3-d697-4d0a-9f40-49ad19f1b12c", "6f8ae67a-17d2-4b38-a010-bd74300e95cc", "db6b365a-efc3-4257-999e-bcb1625f4877", "db3618ce-c187-403b-ac84-cb8794439a18", "9850270d-23d6-4899-8d3e-893a12092e89" ] }
If app not found:
{ "errors": { "globalErrors": [ { "code": "ASF-131", "message": "The application was not found." } ], "fieldErrors": null }, "result": null }
Install an App to devices with specified GUIDs - Asynchronous - iOS Only
This call triggers an app install for specific device GUIDs. Use this call instead of the synchronous version for better performance. You can use Discover Devices Eligible for a Given App to get a list of eligible GUIDs. You can use Get asynchronous task list for current user to monitor the status of the installations.
Authentication
Ivanti recommends that the user making the call be an API User. To create an API user, navigate in the Ivanti Neurons for MDM portal to Users > Users +Add > API User. Additionally, the user making the call needs the App & Content Management role.
HTTP Method
PUT
Request URI
/api/v2/app/install/async
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
dmPartitionId |
Request body |
Required Data Type: Long The device partition ID. |
23000 |
guids |
Request body |
Required Data Type: String List of device GUIDs of the devices on which to install the app. |
b8b55026-502b-4f64-a422-f1f094aec6ba |
bundleId |
Request body |
Required Data Type: String The bundle id of the application you want to install. |
com.eeenmachine.pocketplanes |
appVersion |
Request body |
Data Type: String The specific version of the application you want to install. |
1.2.4 |
platformType |
Request body |
Required Data Type: String The platform type. Must be IOS. |
IOS |
Response Fields
Field |
Description |
---|---|
errors |
Null if no errors. |
result |
|
noOfPollRequestsRemaining |
|
nextIntervalInMillis |
|
taskList |
|
taskId |
Use this value when referring to the return of GET /api/v1/asynctask/all to find the progress of the associated task. |
taskType |
|
taskStatus |
Status of the task. |
createdAt |
|
description |
Name of app being installed. |
Example Request
curl -X PUT \ https://[Ivanti Neurons for MDM]/api/v2/app/install/async \ -H 'Authorization: Basic <token>' \ -H 'Content-Type: application/json' \ -d '{ "bundleId": "com.eeenmachine.pocketplanes", "dmPartitionId": 23000, "appVersion": "1.2.4", "platformType": "IOS", "guids": [ "b8b55026-502b-4f64-a422-f1f094aec6ba", "6ff689c0-21c7-47a8-a979-3f35c989667d" ] }'
Example Response
Success when GUIDs are eligible for install.
{ "errors": null, "result": { "noOfPollRequestsRemaining": 13, "nextIntervalInMillis": 1000, "taskList": [ { "taskId": 40, "taskType": "APP_INSTALL_GUID", "taskStatus": "QUEUED", "createdAt": 1650473330150, "description": "App com.eeenmachine.pocketplanes install/update for 2 device(s)" } ] } }
When GUIDs are not eligible for install.
{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 0, "deviceGuidsNotEligibleForApp": [ "2615eeb3-4f5c-4e8a-a16f-ae07f3519785", "2615eeb3-4f5c-4e8a-a16f-ae07f3519784", "2615eeb3-4f5c-4e8a-a16f-ae07f3519783" ] } }
Install an App to devices with specified GUIDs - Synchronous - iOS Only
This call triggers an app install for specific device GUIDs. Use the asynchronous version of this call for better performance. You can use Discover Devices Eligible for a Given App to get a list of eligible GUIDs.
Authentication
This call requires tenant admin credentials.
HTTP Method
PUT
Request URI
/api/v2/app/install
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
dmPartitionId |
Request body |
Required Data Type: Long The device partition ID. |
23000 |
guids |
Request body |
Required Data Type: String List of device GUIDs of the devices on which to install the app. |
2615eeb3-4f5c-4e8a-a16f-ae07f3519783 |
bundleId |
Request body |
Required Data Type: String The bundle id of the application you want to install. |
com.mobileiron.anyware.ios |
appVersion |
Request body |
Data Type: String The specific version of the application you want to install. |
1.1.1 |
platformType |
Request body |
Required Data Type: String The platform type. Must be IOS. |
IOS |
Response Fields
Field |
Description |
---|---|
errors |
null if no errors. |
result |
JSON container for results, which is a list of device GUIDs. |
numberOfTriggeredAppInstalls |
How many successfully triggered installs occurred. |
deviceGuidsNotEligibleForApp |
List of ineligible device GUIDs. |
Example Request
curl -X PUT \ https://[Ivanti Neurons for MDM]/api/v2/app/install \ -H 'Authorization: Basic <token>' \ -H 'Content-Type: application/json' \ -d '{ "guids": [ "3fc9c1df-4f87-4db5-9569-362064a1c2ce", "3c0f8242-31bb-4ebc-83c3-6f9b814efc6d", "cbd269f7-51fd-4c60-a770-5be709a9ed6c" ], "bundleId": "com.playgendary.bowmasters", "dmPartitionId": 23504, "appVersion": "1.1.1", "platformType": "IOS" }'
Example Response
Success when GUIDs are eligible for install.
{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 3, "deviceGuidsNotEligibleForApp": [] } }
When GUIDs are not eligible for install.
{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 0, "deviceGuidsNotEligibleForApp": [ "2615eeb3-4f5c-4e8a-a16f-ae07f3519785", "2615eeb3-4f5c-4e8a-a16f-ae07f3519784", "2615eeb3-4f5c-4e8a-a16f-ae07f3519783" ] } }
Install an App based on App Distribution Filters - Asynchronous - iOS Only
This call triggers an asynchronous app install for devices found by specific app distribution filters. Use this call instead of the synchronous version for better performance. You can also trigger an install for all devices that already have the app. You can use Get asynchronous task list for current user to monitor the status of the installations.
Authentication
Ivanti recommends that the user making the call be an API User. To create an API user, navigate in the Ivanti Neurons for MDM portal to Users > Users +Add > API User. Additionally, the user making the call needs the App & Content Management role.
HTTP Method
PUT
Request URI
/api/v2/app/{appVersionId}/install/async
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
appVersionId |
Request path |
Required Data Type: String The specific version of the application you want to install. This call takes the appVersionId parameter in the request path and request body. |
17003 |
appVersionId |
Request Body |
Required Data Type: Long The specific version of the application you want to install. This call takes the appVersionId parameter in the request path and request body. |
17003 |
dmPartitionId |
Request body |
Required Data Type: Long The device partition ID. |
23000 |
appDeviceFilterId |
Request body |
Data Type: Long App distribution filter to use for determining on which devices to install the app. Use GET /api/v1/app/devicefilter?dmPartitionId=<dmPartitionId>&includeAppCount=true|false for a list of valid filters. |
6 |
accountIds |
Request body |
Data Type: Long Account IDs to which to distribute the app. Use the Get All Accounts call for a list of valid account IDs. |
10050 |
accountGroupIds |
Request body |
Data Type: Long Account group IDs to which to distribute the app. Use the List User Groups call for a list of account group IDs. |
11000 |
requestNewInstall |
Request body |
Required Data Type: Boolean true or false. If true, perform a new install. If false, do not perform a new install. See Understanding the requestNewInstall and requestUpdate Parameters for more information. |
true |
requestUpdate |
|
Data Type: Boolean true or false. If true, perform an update install. If false, do not perform an update install. See Understanding the requestNewInstall and requestUpdate Parameters for more information. |
false |
everyoneWithApp |
Request body |
Required Data Type: Boolean true or false. If true, perform an install for everyone with the app. If false, do not perform an update for everyone with the app. |
false |
Understanding the requestNewInstall and requestUpdate Parameters
Use the requestNewInstall and requestUpdate parameter to specify the desired actions: only new install, only update, or update and install.
For example:
- If app is installed and you request new install: it will not install
- If app is not install and you request update: it will not install
- If app is installed (old version) and you request update (new version): it installs
- No app and you request install: it installs
- Not installed and you request install and update: it installs
Response Fields
Field |
Description |
---|---|
errors |
Null if no errors. |
result |
|
noOfPollRequestsRemaining |
|
nextIntervalInMillis |
|
taskList |
|
taskId |
Use this value when referring to the return of GET /api/v1/asynctask/all to find the progress of the associated task. |
taskType |
|
taskStatus |
Status of the task. |
createdAt |
|
description |
Name of app being installed. |
Example Request
PUT /api/v2/app/17003/install/async -d '{"appVersionId":17003,"dmPartitionId":23000,"appDeviceFilterId":null,"accountIds":[],"accountGroupIds":[],"deviceIds":[],"ruleGroupIds":[],"requestNewInstall":true,"requestUpdate":false,"everyoneWithApp":true}'
Example Response
Success
{ "errors": null, "result": { "noOfPollRequestsRemaining": 13, "nextIntervalInMillis": 1000, "taskList": [ { "taskId": 5, "taskType": "APP_INSTALL_DIST", "taskStatus": "QUEUED", "createdAt": 1649264141176, "description": "App Pocket Planes - Airline Management 1.2.4 install/update" } ] } }
When app not found
{ "errors": { "globalErrors": [ { "code": "ASF-131", "message": "The application was not found." } ], "fieldErrors": null }, "result": null }
When no eligible device found
{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 0, "resultMessage": "No eligible devices were found for the install/update request for this application." } }
Install an App based on App Distribution Filters - Synchronous - iOS Only
This call triggers an app install for devices found by specific app distribution filters. You can also trigger an install for all devices that already have the app. Use the asynchronous version of this call for better performance.
Authentication
This call requires tenant admin credentials.
HTTP Method
PUT
Request URI
/api/v2/app/{appVersionId}/install
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
appVersionId |
Request path |
Required Data Type: String The specific version of the application you want to install. This call takes the appVersionId parameter in the request path and request body. |
17015 |
appVersionId |
Request Body |
Required Data Type: Long The specific version of the application you want to install. This call takes the appVersionId parameter in the request path and request body. |
17015 |
dmPartitionId |
Request body |
Required Data Type: Long The device partition ID. |
23000 |
appDeviceFilterId |
Request body |
Data Type: Long App distribution filter to use for determining on which devices to install the app. Use GET /api/v1/app/devicefilter?dmPartitionId=<dmPartitionId>&includeAppCount=true|false for a list of valid filters. |
6 |
accountIds |
Request body |
Data Type: Long Account IDs to which to distribute the app. Use the Get All Accounts call for a list of valid account IDs. |
10050 |
accountGroupIds |
Request body |
Data Type: Long Account group IDs to which to distribute the app. Use the List User Groups call for a list of account group IDs. |
11000 |
requestNewInstall |
Request body |
Required Data Type: Boolean true or false. If true, perform a new install. If false, do not perform a new install. See Understanding the requestNewInstall and requestUpdate Parameters for more information. |
true |
requestUpdate |
|
Data Type: Boolean true or false. If true, perform an update install. If false, do not perform an update install. See Understanding the requestNewInstall and requestUpdate Parameters for more information. |
false |
everyoneWithApp |
Request body |
Required Data Type: Boolean true or false. If true, perform an install for everyone with the app. If false, do not perform an update for everyone with the app. |
false |
Understanding the requestNewInstall and requestUpdate Parameters
Use the requestNewInstall and requestUpdate parameter to specify the desired actions: only new install, only update, or update and install.
For example:
- If app is installed and you request new install: it will not install
- If app is not install and you request update: it will not install
- If app is installed (old version) and you request update (new version): it installs
- No app and you request install: it installs
- Not installed and you request install and update: it installs
Response Fields
Field |
Description |
---|---|
errors |
null if no errors. |
result |
Number of devices successfully queued for install. |
Example Request
curl -X PUT \ https://[Ivanti Neurons for MDM]/api/v2/app/17000/install \ -H 'Authorization: Basic <token>' \ -H 'Content-Type: application/json' \ -d '{ "dmPartitionId": 23000, "appVersionId": 17000, "appDeviceFilterId": 4, "accountIds": [ 10050, 10051 ], "accountGroupIds": [ 11000 ], "requestNewInstall": false, "requestUpdate": true, "everyoneWithApp": false }'
Example Response
Success
{ "errors": null, "result": 3 }
When app not found
{ "errors": { "globalErrors": [ { "code": "ASF-131", "message": "The application was not found." } ], "fieldErrors": null }, "result": null }
When no eligible device found
{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 0, "resultMessage": "No eligible devices were found for the install/update request for this application." } }
Get asynchronous task list for current user
This call returns the asynchronous tasks status for current user. You can use it to monitor the progress of the Install an App to devices with specified GUIDs - Asynchronous - iOS Only and Install an App based on App Distribution Filters - Asynchronous - iOS Only calls.
Authentication
Ivanti recommends that the user making the call be an API User. To create an API user, navigate in the Ivanti Neurons for MDM portal to Users > Users +Add > API User. Additionally, the user making the call needs the App & Content Management role.
HTTP Method
GET
Request URI
api/v1/asynctask/all
Response Fields
Field | Description |
---|---|
errors |
|
result |
|
noOfPollRequestsRemaining |
|
nextIntervalInMillis |
|
taskList |
|
taskId |
Corresponds to the taskId values returned by Install an App to devices with specified GUIDs - Asynchronous - iOS Only and Install an App based on App Distribution Filters - Asynchronous - iOS Only. |
taskType |
|
taskStatus |
|
createdAt |
|
description |
|
responseData |
|
numberOfTriggeredAppInstalls |
|
numberOfNonTriggeredAppInstalls |
|
moreVppLicensesAreNeeded |
|
licenseAgreementNotAccepted |
|
appName |
|
appVersion |
|
notificationThreadUuid |
Example Request
curl --location --request GET 'https://[Ivanti Neurons for MDM]/api/v1/asynctask/all' \ --header 'Accept: application/json, text/plain, */*' \ --header 'Content-Type: application/json' \ --header 'Authorization: Basic <token>'
Example Response
Success:
{ "errors": null, "result": { "noOfPollRequestsRemaining": 13, "nextIntervalInMillis": 1000, "taskList": [ { "taskId": 5, "taskType": "APP_INSTALL_DIST", "taskStatus": "COMPLETE", "createdAt": 1649264141176, "description": "App Pocket Planes - Airline Management 1.2.4 install/update", "responseData": { "numberOfTriggeredAppInstalls": 1, "numberOfNonTriggeredAppInstalls": 0, "moreVppLicensesAreNeeded": 0, "licenseAgreementNotAccepted": 2, "appName": "App Pocket Planes - Airline Management", "appVersion": "1.2.4", "notificationThreadUuid": "83f2005b-4b8e-4527-a80b-551815258297" } } ] } }
Get the Status of the Asynchronous Request
This API provides the status of the Asynchronous task request.
Authentication
This call requires tenant admin credentials.
HTTP Method
GET
Request URI
api/v1/asynctask/status/{taskGuid}
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
taskGuid |
Request body |
Required Data Type: string |
8cf7b560-1172- 418e-a9cc0db7197ffe9f |
Example Response
{ "errors": null, "result": { "taskUuid": "8cf7b560-1172-418e-a9cc-0db7197ffe9f",
"taskType": "CLEAR_CONFIG_ERROR",
"taskStatus": "COMPLETE",
"createdAt": 1701099803091,
"modifiedAt": 1701099803112,
"errorConfigsCleared": 56
} }
Retry Installation of Error Configurations
This API retries the installation of error configurations on devices.
Authentication
This call requires tenant admin credentials.
HTTP Method
POST
Request URI
api/v1/asynctask
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
taskGuid |
Request body |
Required Data Type: string |
CLEAR_CONFIG_ERROR |
Example Response
{ "errors": null, "result": { "taskUuid": "8cf7b560-1172-418e-a9cc-0db7197ffe9f",
"taskType": "CLEAR_CONFIG_ERROR",
"taskStatus": "QUEUED",
"createdAt": 1701099803091
} }
Delete an App
When Ivanti Neurons for MDM uploads an app, it assigns the app an appId and a version ID, which you use along with the cmPartitionId to remove that version of the app.
Authentication
This call requires tenant admin credentials.
HTTP Method
DELETE
Request URI
api/v1/app/appId/version?cmPartitionId=value&id=value
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
appId |
Path |
Application ID |
16003 |
cmPartitionId |
Path |
The Content space ID id is the ID of the space containing the version to delete. |
20000 |
id |
Path |
The id of the specific version of the application you want to delete. |
name |
Example Request
https://[Ivanti Neurons for MDM]/api/v1/app/16003/version?cmPartitionId=20000&id=17004
Review and Rate an App
This call creates an app review and rating.
Authentication
Basic authentication is not supported with this API call.
HTTP Method
POST
Request URI
/c/api/v1/appstore/AppVersionId/review?summary=summaryText&rating=ratingNumber&title=title
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
ApplicationVersionId |
Path |
Integer. The application’s version ID. Use GET /api/v1/app/id to get the value for applicationVersionId. |
17001 |
summaryText |
Path |
String. The summary text for the review. This is the main text for the review. |
Great little app! I use it all the time. |
ratingNumer |
Path |
Integer. The rating number for the review, from 1 to 5. |
5 |
title |
Path |
String. The title of the review. |
Must have! |
Example Request
curl -X POST -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" https://[Ivanti Neurons for MDM]/c/api/v1/appstore/17026/review?summary=Great!&rating=5&title=Must have!
Response Fields
Field |
Description |
---|---|
errors |
null if no errors. |
result |
true if successful, |
Example Response
{
"errors": null,
"result": true
}
Get All Reviews
This call gets all reviews in the specified content space.
Authentication
This call requires tenant admin credentials.
HTTP Method
GET
Request URI
/api/v1/app/review?cmPartitionId= cmPartitionId
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
cmPartitionId |
Path |
The Content space ID id is the ID of the desired space containing the reviews to get. |
20003 |
Example Request
https://[Ivanti Neurons for MDM]/api/v1/app/review?cmPartitionId=20003
Response Fields
Field |
Description |
---|---|
errors |
|
result |
|
totalCount |
|
queryTime |
|
searchResults |
|
id |
|
tenantId |
|
cmPartitionId |
|
title |
|
summary |
|
reviewState |
|
versionTag |
|
applicationId |
|
applicationVersionId |
|
createdAt |
|
createdBy |
|
modifiedAt |
|
modifiedBy |
|
displayName |
|
rating |
|
appVersionName |
|
iconUrl |
|
platformType |
|
offset |
|
facetedResults |
|
RATING |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
PLATFORMTYPE |
|
ANDROID |
|
IOS |
|
APPTYPE |
|
IN_HOUSE |
|
PUBLIC |
|
totalUnfilteredResultCount |
|
Example Response
{
"errors": null,
"result": {
"totalCount": 39,
"queryTime": 1,
"searchResults": [
{
"id": 49069,
"tenantId": 42004,
"cmPartitionId": 20003,
"title": "ok",
"summary": "",
"reviewState": "PUBLISHED",
"versionTag": "1.7.8",
"applicationId": 16031,
"applicationVersionId": 17031,
"createdAt": 1385061019059,
"createdBy": 10141,
"modifiedAt": null,
"modifiedBy": null,
"displayName": "Nimish Amin",
"rating": 3,
"appVersionName": "ADP Mobile Solutions",
"iconUrl": "http://a1.mzstatic.com/us/r30/Purple4/v4/37/fc/52/37fc52cc-772f-5231-f60c-ba6692f24645/icon.png",
"platformType": "IOS"
},
…
],
"offset": 0,
"facetedResults": {
"RATING": {
"1": 2,
"2": 3,
"3": 6,
"4": 12,
"5": 16
},
"PLATFORMTYPE": {
"ANDROID": 5,
"IOS": 34
},
"APPTYPE": {
"IN_HOUSE": 1,
"PUBLIC": 38
}
},
"totalUnfilteredResultCount": 39
}
}
Delete an App Review
This call deletes an App review.
Authentication
This call requires tenant admin credentials.
HTTP Method
DELETE
Request URI
/api/v1/app/review/delete?cmPartitionId=cmPartitionId&id=id
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
cmPartitionId |
Path |
The Content space ID id is the ID of the desired space containing the review to delete. |
20000 |
id |
Path |
The id of the app review you want to delete. |
name |
Example Request
https://[Ivanti Neurons for MDM]/api/v1/app/review/delete?cmPartitionId=20003&id=49023
Example Response
{
"errors": null,
"result": 1
}
Get Application Configuration
Returns application configuration for a specific version of an application.
Authentication
This call requires tenant admin credentials.
Request format
GET /api/v1/app/version/{applicationVersionId}/config?type={configType}
Request Parameters
Parameter |
Argument Type |
Description |
---|---|---|
applicationVersionId REQUIRED |
Path |
number ID of the specific version of the application. |
type REQUIRED |
Query |
string Configuration type. Must contain the value INSTALL. |
Response
{ "errors":{ object(Error) }, "result":{ object(SearchResponse) } }
Field | Description |
---|---|
errors | object(Error) Response errors. |
result | object(SearchResponse) Response results. |
Object: SearchResponse
This object represents the result response.
{ "limit": number, "offset": number, "searchResults": [ { object(ApplicationConfiguration) } ], "totalCount": number }
Field |
Description |
---|---|
limit |
number The maximum number of results that is being returned. Default is 50 and it can be controlled via query parameter. Refer to the API guide for details. |
offset |
number Result offset. |
searchResults[] |
object(ApplicationConfiguration) A list of application configurations. |
totalCount |
number The total number of results. |
Object: ApplicationConfiguration
This object represents the application configuration result.
{ "applicationVersionId":number, "configVariables":[ { string } ], "createdAt":number, "createdBy":number, "defaultConfig":boolean, "description":string, "id":number, "modifiedAt":number, "modifiedBy":number, "name":string, "priority":number, "settings":{ Object(ApplicationConfigurationSettings) }, "type":string, "uuid":string "userCounts":number, "groupCounts":number, }
Field |
Description |
---|---|
applicationVersionId |
number ID of the specific version of the application for which the configuration is applied. |
configVariables[] |
string List of configuration substitution variables. |
createdAt |
number Time of configuration creation in UNIX Epoch time. It is the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970. |
createdBy |
number ID of the user that created the application configuration. |
defaultConfig |
boolean Flag that indicates if this is default system configuration. |
description |
string Configuration description that can be used to specify the purpose of the configuration. |
groupCounts |
number Number of user groups to which the configuration is distributed. |
id |
number ID of the application configuration. |
modifiedAt |
number Time of configuration modification in UNIX Epoch time. It is the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970. |
modifiedBy |
number ID of the user that last modified the configuration. |
name |
string Name of the application configuration. |
priority |
number Priority of the configuration with 1 being the highest priority and the default configuration having the lowest priority. |
settings |
Object(ApplicationConfigurationSettings) Additional configuration settings. |
type |
string Configuration type. Types other than INSTALL are for internal use only. |
userCounts |
number Number of individual users to which the configuration is distributed. |
uuid |
string System assigned UUID of the configuration used internally. |
Object: ApplicationConfigurationSettings
{ "autoUpdate":boolean, "hideApp":boolean, "managed":boolean, "required":boolean, "silentInstall":boolean, "scheduleInstall": { Object(ApplicationConfigurationInstallScheduleSetting)} }, "type":string, }
Field |
Description |
---|---|
Field |
Description |
autoUpdate |
boolean iOS Public app specific flag. App update is triggered when new version of the application is available and the flag is set to true. |
string Use this parameter to define the order in which apps are received on the device when it is first registered (specifically, within the first twenty minutes after registration date and time), and required apps are pushed to install. You can prioritize downloading of specific apps before other apps, for example, prioritizing the download of Tunnel and Email apps before other non-critical apps. This parameter is applicable for public and private apps. Prerequisite apps are pushed before dependent apps. Valid values are:
This parameter is supported on iOS (except AppStation for iOS), Android (except Android for Enterprise), and macOS (in-house PKG apps and Apple Apps and Books apps) devices. This parameter is available for new registration devices. By default, all apps are set to medium priority. During this process, the user can elect to manually install any app in the catalog even though that app will compete for resources to install and may queue before high priority apps. |
|
hideApp |
boolean Flag indicating if the application is shown in the user app catalog (Apps@Work). |
managed |
boolean Flag indicating if previously installed application should be converted to managed. |
required REQUIRED |
boolean Flag indicating if the application is required. Must set to true or false when using this object in input parameters. Cannot be null. |
silentInstall |
boolean Android specific flag. If set to true, the application is silently installed on Samsung KNOX and Zebra devices. |
scheduleInstall |
Object(ApplicationConfigurationInstallScheduleSetting} Windows specific application installation schedule. |
type REQUIRED |
string Type of the application configuration. Types other than INSTALL are for internal use only. Required and must be set to INSTALL when using this object in input parameters. |
Object: ApplicationConfigurationInstallScheduleSetting
Windows specific application installation schedule.
{ "enabled":boolean, "startTime":string, "endTime":string, }
Field |
Description |
---|---|
enabled |
boolean Flag indicating if the application is installed on a schedule. |
startTime |
string Time field indicating the start time of the window within which the application will be installed. The supported format is 24 hour time. For example 02:00, meaning 2 am. |
endTime |
string Time field indicating the end time of the window within which the application will be installed. The supported format is 24 hour time. For example 14:00, meaning 2 pm.
|
Example Request
curl -X GET -u <username>:<passwpord> -kv 'https://[Ivanti Neurons for MDM]/api/v1/app/version/17000/config?type=INSTALL'
Example Response
{ "errors": null, "result": { "limit": 50, "offset": 0, "searchResults": [ { "applicationVersionId": 17000, "configVariables": null, "createdAt": 1547685772847, "createdBy": null, "defaultConfig": false, "description": null, "groupCounts": 2, "id": 47, "modifiedAt": 1547766408140, "modifiedBy": null, "name": "Test Config", "priority": 1, "settings": { "autoUpdate": false, "hideApp": false, "managed": false, "required": true, "silentInstall": false, "type": "INSTALL" }, "type": "INSTALL", "userCounts": 3, "uuid": "6cae754b-baad-41eb-9b36-5884a8c106f0" }, { "applicationVersionId": 17000, "configVariables": null, "createdAt": 1544817252706, "createdBy": null, "defaultConfig": true, "description": "Allows specifying install settings for an application.", "groupCounts": 1, "id": 1, "modifiedAt": 1547691994540, "modifiedBy": null, "name": "Install Application configuration settings.", "priority": 99999, "settings": { "autoUpdate": true, "hideApp": true, "managed": false, "required": true, "silentInstall": false, "type": "INSTALL" }, "type": "INSTALL", "userCounts": 0, "uuid": "cdee085b-f8ee-4a1c-8840-e98a67e14c65" } ], "totalCount": 2 } }
Create Application Configuration
Creates application configuration for a specific version of an application.
Authentication
This call requires tenant admin credentials.
Request format
POST /api/v1/app/version/{applicationVersionId}/config
Request Parameters
Parameter |
Argument Type |
Description |
---|---|---|
applicationVersionId REQUIRED |
Path |
number ID of the specific version of the application. |
Request Body Parameters |
||
|
||
name REQUIRED |
Request body |
string Name of the application configuration. The name has to be unique for that type of application configuration. |
type REQUIRED |
Request body |
string Must contain the value INSTALL |
settings REQUIRED |
Request body |
Object(ApplicationConfigurationSetting) Additional configuration settings. |
groupIds |
Request body |
number List of group ids of the groups to which the configuration will be applied. The configuration will not be applied to any groups when the group id list is empty or not set. The configuration will be applied to all users that have the app installed when the group is set to the “All Users” group. |
accountIds |
Request body |
number List of specific user ids of the users to which the configuration will be applied. The configuration will not be applied to any specific users when the user id list is empty or not set. |
Response
{ "errors":{ object(Error) }, "result" : number }
Field |
Description |
---|---|
errors |
object(Error) Response errors. |
result |
number ID of the application configuration that was created. |
Example Request
curl --location --request POST 'https://[Ivanti Neurons for MDM]/api/v1/app/version/121646/config' \ --header 'Accept: application/json, text/plain, */*' \ --header 'Content-Type: application/json;charset=UTF-8' \ --header 'Authorization: Basic <token>' \ --data-raw '{ "type": "INSTALL", "settings": { "required": true, "hideApp": false, "silentInstall": false, "managed": false, "autoUpdate": true, "type": "INSTALL", "priority": "LOW", "scheduleInstall": null }, "distributeOption": "CUSTOM", "name": "ForDocs", "groupIds": [ 50918 ], "accountIds": [ 486275 ] }'
Example Response
{ "errors": null, "result": 276182 }
Update Application Configuration
Updates a specific application configuration for a specific version of an application.
Authentication
This call requires tenant admin credentials.
Request format
PUT /api/v1/app/version/{applicationVersionId}/config/{configId}
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
cmPartitionId |
Path |
The Content space ID id is the ID of the desired space containing the review to delete. |
20000 |
id |
Path |
The id of the app review you want to delete. |
name |
Response
{ "errors":{ object(Error) }, "result" : number }
Field |
Description |
---|---|
errors |
object(Error) Response errors. |
result |
number ID of the application configuration that was updated. |
Example Request
curl --location --request PUT 'https://[Ivanti Neurons for MDM]/api/v1/app/version/121646/config/276183' \ --header 'Accept: application/json, text/plain, */*' \ --header 'Content-Type: application/json;charset=UTF-8' \ --header 'Authorization: Basic <token>' \ --data-raw '{ "id": 276183, "applicationVersionId": 121646, "name": "ForDocs", "description": null, "priority": 1, "settings": { "type": "INSTALL", "managed": false, "required": true, "hideApp": false, "silentInstall": false, "autoUpdate": true, "priority": "LOW", "scheduleInstall": null }, "type": "INSTALL" }'
Example Response
{ "errors": null, "result": 276183 }
Get all custom attributes for an application version
This call returns a list of all custom attributes for application version.
Authentication
Use credentials for a user with app.read permissions.
HTTP Method
GET
Request URI
/api/v1/app/version/{applicationVersionId}/customattributes
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
applicationVersionId |
Path |
Version of the app for which to fetch the attributes. |
165764 |
Assign custom attributes to an application version
This call assigns custom attributes for an application version.
Authentication
Use credentials for a user with app.update permissions.
HTTP Methods
POST/PUT
Request URI
/api/v1/app/version/{applicationVersionId}/customattributes
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
applicationVersionId |
Path |
Version of the app to which to apply the attributes. |
165764 |
attrs |
Request body |
The custom attributes to apply. |
-d '{ "attrs": { "key": [ "test" ] } }' |
Update custom attributes for an application version
This call updates custom attributes for an application version.
Authentication
Use credentials for a user with app.update permissions.
HTTP Method
PATCH
Request URI
/api/v1/app/version/{applicationVersionId}/customattributes
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
applicationVersionId |
Path |
Version of the app to which to apply the attributes. |
165764 |
forceOverwrite |
Request body |
Setting to true means that the call would overwrite the current attribute values. false adds a new attribute. |
-d '{ "forceOverwrite": false, "attrs": { "key": [ "value2" ] } }' |
attrs |
Request body |
The custom attributes to update. You must specify the existing attribute names for the application version or else the system would remove them. |
Delete custom attributes for an application version
This call deletes custom attributes.
Authentication
Use credentials for a user with app.update permissions.
HTTP Method
DELETE
Request URI
/api/v1/app/version/{applicationVersionId}/customattributes
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
applicationVersionId |
Path |
Version of the app to which to apply the attributes. |
165764 |
attrs |
Request body |
Specify the attributes to remove. |
-d '{ "attrs": { "key": [ "test" ] } }' |
Update custom attributes for applications
This call updates custom attributes of specified applications.
Authentication
Use credentials for a user with app.update permissions.
HTTP Method
PATCH
Request URI
/api/v1/app/customattributes
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
ids |
Request body |
IDs of apps for which to update custom attributes. |
-d '{ "ids": [ 16005, 16006, 16007 ], "attrs": { "attrs": { "key12": [ "value101", "value102" ] } }, "forceOverwrite": true }' |
attrs |
Request body |
The custom attributes to update. |
|
forceOverwrite |
Request body |
Setting to true means that the call would overwrite the current attribute values. false adds a new attribute.. |
Update custom attributes for an application
This call updates custom attributes for an application.
Authentication
Use credentials for a user with app.update permissions.
HTTP Method
PATCH
Request URI
/api/v1/app/{appId}/customattributes
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
appId |
Path |
app for which to update the attributes. |
165764 |
attrs |
Request body |
The custom attributes to update. |
-d '{ "attrs": { "key12": [ "value101", "value102" ] }, "forceOverwrite": true }' |
forceOverwrite |
Request body |
Setting to true means that the call would overwrite the current attribute values. false adds a new attribute.. |
Delete custom attributes for an application
This call deletes custom attributes for an application.
Authentication
Use credentials for a user with app.update permissions.
HTTP Method
DELETE
Request URI
/api/v1/app/{appId}/customattributes
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
appId |
Path |
app for which to delete the attributes. |
165764 |
attrs |
Request body |
Specify the attribute names to delete. |
-d '{ "attrs": { "key12": [ "value101", "value102" ] } }' |
Delete custom attributes for applications
The following query is used to delete custom attributes:
Authentication
Use credentials for a user with app.update permissions.
HTTP Method
DELETE
Request URI
/api/v1/app/customattributes
Request Parameters
Parameter |
Argument Type |
Description |
Example Value |
---|---|---|---|
ids |
Request body |
IDs of apps for which to delete custom attributes. |
-d '{ "ids": [ 16005, 16006, 16007 ], "attrKeys": { "key12": [ "value101", "value102" ] } }' |
attrs |
Request body |
The custom attributes to delete. |